package com.med.mapper;


import com.med.entity.ScheduleDO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @BelongsProject: Internet-based-healthcare
 * @BelongsPackage: com.med.mapper
 * @Author: 小龚
 * @CreateTime: 2025-08-27 14:12
 * @Description: TODO
 * @Version: 1.0
 */
@Mapper
public interface NotificationMapper {

    // 获取未发送消息通知的排班
    List<ScheduleDO> getSchedule();

    // 根据医生id获取医生姓名
    String getDoctorNameByDocId(Integer doctorId);

    // 根据医生id获取医生所在科室
    String getDepartmentNameByDocId(Integer doctorId);

    // 插入消息通知记录
    Integer insertNotice(@Param("scheduleDO") ScheduleDO scheduleDO, @Param("content") String content);

    // 更改生成消息通知状态
    Integer updateNoticeStatus(@Param("scheduleDO") ScheduleDO scheduleDO);

    // 否已生成预约号是否已生成消息通知都修改成否
    Integer updateSchedule(@Param("doctorId") Integer doctorId, @Param("scheduleId") Integer scheduleId);

    // 删除预约号
    Integer deleteAppointment(@Param("doctorId") Integer doctorId, @Param("startTime") String startTime, @Param("endTime") String endTime);

    // 删除预约号时先获取原本的日期
    String getOriginalDate(Integer scheduleId);

    // 删除消息通知记录
    Integer deleteNotice(@Param("scheduleId") Integer scheduleId);

    // 根据排班id去获取排班时间
    String getDateByScheduleId(Integer scheduleId);
}
